using System;
using System.Collections.Generic;
using System.Text;
using System.Collections;

namespace Rally_Dekstop
{
    public class WorkSpace
    {
        private string selectedWorkspace;
        private string selectedWorkspaceRef;
        private string selectedWorkspaceType;
        private string selectedProject;
        private string selectedProjectRef;
        private Projects projects = new Projects();
        private WorkSpaceSpecifics workSpacespecifics = new WorkSpaceSpecifics();

        public WorkSpace()
		{
			this.selectedWorkspace = string.Empty;
			this.selectedWorkspaceRef = string.Empty;
			this.selectedWorkspaceType = string.Empty;
            this.selectedProject = string.Empty;
            this.selectedProjectRef = string.Empty;
		}


        public string SelectedWorkSpace
        {
            get
            {
                return this.selectedWorkspace;
            }
            set
            {
                this.selectedWorkspace = value;
            }
        }

        public string SelectedWorkSpaceRef
        {
            get
            {
                return this.selectedWorkspaceRef;
            }
            set
            {
                this.selectedWorkspaceRef = value;
            }
        }

        public WorkSpaceSpecifics WorkSpaceSpecifics
        {
            get
            {
                return workSpacespecifics;
            }
            
        }

        public Projects Projects
        {
            get
            {
                return projects;
            }
            set
            {
                this.projects = value;
            }
        
        }

        public string SelectedWorkSpaceType
        {
            get
            {
                return this.selectedWorkspaceType;
            }
            set
            {
                this.selectedWorkspaceType = value;
            }
        }
        public string SelectedProject
        {
            get
            {
                return this.selectedProject;
            }
            set
            {
                this.selectedProject = value;
            }
        }
        public string SelectedProjectRef
        {
            get
            {
                return this.selectedProjectRef;
            }
            set
            {
                this.selectedProjectRef = value;
            }
        }

        
    }

    public class Projects
    {
        private ArrayList project = new ArrayList();
        private ArrayList projectRef = new ArrayList();

        public ArrayList Project
        {
            get
            {
                return this.project;
            }
            set
            {
                this.project = value;
            }
        }
        public ArrayList ProjectRef
        {
            get
            {
                return this.projectRef;
            }
            set
            {
                this.projectRef = value;
            }
        } 
    
    
    }


    public class WorkSpaceSpecifics
    {
        private TestResultSpecifics testResult = new TestResultSpecifics();
        private TestCaseSpecifics testCase = new TestCaseSpecifics();
        private DefectSpecifics defect = new DefectSpecifics();
        private TaskSpecifics tsk = new TaskSpecifics();

        public TestResultSpecifics TestResult
        {
            get
            {
                return this.testResult;
            }
            set
            {
                this.testResult = value;
            }
        }

        public TestCaseSpecifics TestCase
        {
            get
            {
                return this.testCase;
            }
            set
            {
                this.testCase = value;
            }
        }
        public DefectSpecifics Defect
        {
            get
            {
                return this.defect;
            }
            set
            {
                this.defect = value;
            }
        }
        public TaskSpecifics Task
        {
            get
            {
                return this.tsk;
            }
            set
            {
                this.tsk = value;
            }
        }
    }

    public class TestResultSpecifics
    {
        private ArrayList verdicts = new ArrayList();

        public ArrayList Verdicts
        {
            get
            {
                return this.verdicts;
            }
            set
            {
                this.verdicts = value;
            }
        }

       
    }

    public class TestCaseSpecifics
    {
        private ArrayList types = new ArrayList();
        private ArrayList priority = new ArrayList();
        private ArrayList method = new ArrayList();
        private ArrayList risk = new ArrayList();
        private ArrayList package = new ArrayList();


        public ArrayList Types
        {
            get
            {
                return this.types;
            }
            set
            {
                this.types = value;
            }
        }
        public ArrayList Priority
        {
            get
            {
                return this.priority;
            }
            set
            {
                this.priority = value;
            }
        }
        public ArrayList Method
        {
            get
            {
                return this.method;
            }
            set
            {
                this.method = value;
            }
        }
        public ArrayList Risk
        {
            get
            {
                return this.risk;
            }
            set
            {
                this.risk = value;
            }
        }

        public ArrayList Package
        {
            get
            {
                return this.package;
            }
            set
            {
                this.package = value;
            }
        }
    }
    public class DefectSpecifics
    {
        private ArrayList environments = new ArrayList();
        private ArrayList priorities = new ArrayList();
        private ArrayList resolutions = new ArrayList();
        private ArrayList severities = new ArrayList();
        private ArrayList states = new ArrayList();
        private ArrayList users = new ArrayList();

        public ArrayList Environments
        {
            get
            {
                return this.environments;
            }
            set
            {
                this.environments = value;
            }
        }
        public ArrayList Priorities
        {
            get
            {
                return this.priorities;
            }
            set
            {
                this.priorities = value;
            }
        }
        public ArrayList Resolutions
        {
            get
            {
                return this.resolutions;
            }
            set
            {
                this.resolutions = value;
            }
        }
        public ArrayList Severities
        {
            get
            {
                return this.severities;
            }
            set
            {
                this.severities = value;
            }
        }
        public ArrayList States
        {
            get
            {
                return this.states;
            }
            set
            {
                this.states = value;
            }
        }
        public ArrayList Users
        {
            get
            {
                return this.users;
            }
            set
            {
                this.users = value;
            }
        }

    }
    public class TaskSpecifics
    {
        ArrayList states = new ArrayList();
        public ArrayList States
        {
            get
            {
                return this.states;
            }
            set
            {
                this.states = value;
            }
        }

    }
}
